// 所有调用接口的代码都写到这里
import axios from "axios";
import store from "./store";
import { Message } from "element-ui";

export const BASEURL = "http://120.53.31.103:84/api";

// 配置基地址
axios.defaults.baseURL = BASEURL;
// http://120.53.31.103:84/api/coupon?page=1&limit=10&name=&grant=&receive_type=0&
// 添加前置拦截器
axios.interceptors.request.use(
<<<<<<< HEAD
  function (config) {
=======
  function(config) {
>>>>>>> 4023fc56e5b3f47ee0b44ecaf4bd550515a24d8b
    // 从 vuex 中取出令牌
    if (store.state.user) {
      config.headers.Authorization =
        "Bearer " + store.state.user.remember_token;
    }
    return config;
  },
  function (error) {
    // 异步的要想返回必须转成 Promise
    return Promise.reject(error);
  }
);

// 添加后置拦截器
axios.interceptors.response.use(
  function (config) {
    // 当网络请求成功时
    if (config.data.code !== 200) {
      Message.error(config.data.msg);
      return false;
    }
    return config.data;
  },
  function (error) {
    // 当网络请求失败（断网）
    Message.error("请求连接失败！（网络原因）");
    return Promise.reject(error);
  }
);

// 登录函数
export function login(mobile, password) {
  return axios.post("/adminUser/login", {
    // mobile: mobile,
    // password: password 可以简写为下面
    mobile,
    password
  });
}
export function kkk(mobile, password) {
  return axios.post("/coupon?page=1&limit=10&name=&grant=&receive_type=0&", {
    // mobile: mobile,
    // password: password 可以简写为下面
    mobile,
    password
  });
}

//题库管理数据
export function question(page, limit, name, uld, classify) {
  return axios.get("/ques/bank", {
    page,
    limit,
    name,
    uld,
    classify
  });
}
//题库管理删除
export function del(id) {
  return axios.delete(`/ques/bank/${id}`);
}

// 获取菜单,把数据缓存到本地，除非关闭浏览器否则这些数据都从浏览器本地获取
export function getMenus() {
  // 从浏览器中获取数据
  let cache = store.state.cache.menu;
  // 判断本地浏览器中是否已经有这些数据了
  if (cache) {
    // 反序列化成对象
    cache = JSON.parse(cache);
    // 为了和下面返回的数据类型相同 ，所以也转成 Promise
    return Promise.resolve(cache);
  } else {
    // 调用接口获取数据，并把数据缓存到浏览器中
    return axios.post("/menu/info").then(res => {
      // 缓存起来
      store.commit("set_menu_cache", res.rows);
      // 这里是异步的，要想返回必须转成 Promise 对象
      return Promise.resolve(res.rows);
    });
  }
}

//题库分类数据
export function ment() {
  return axios.get("/ques/classify?name=&");
}
//删除考点
export function dell(id) {
  return axios.delete(`/ques/classify/${id}`);
}
//考点管理数据
export function point() {
  return axios.get("/exam/point?name=&");
}
// 获取学员列表
// query：对象，{page:1,limit:32:status....}
export function getStudents(query) {
  return axios.get("/user", {
    params: query
  });
}

// 获取财务列表接口


export function order(query) {
  return axios.post("/order/index", { query });
}

//获取课程统计列表
export function getCourse() {
  return axios.post("course/statics");
}

export function getCourseKe() {
  return axios.get("config/other_setting");
}

export function getteach() {
  return axios.post("/teacher/statics", {});
}

export function getteach() {
  return axios.post("/teacher/statics");
}

// 获取优惠券管理列表  coupon
export function getCoupon(query) {
  return axios.get("/coupon", {
    params: query
  });
}

// /config/other_setting
// 课程类型

export function config() {
  return axios.get("/config/other_setting");
  export function studyCard(query) {
    return axios.get("/studyCard", {});
  }
  //进入页面请求所有数据
  export function getBanner(query) {
    return axios.get("/informationClassify", {
      params: query
    });
  }

  //编辑
  export function getBanners(query, it) {
    return axios.put("/informationClassify/" + query, it);
  }

  // 删除
  export function getBanne(query) {
    return axios.delete(`/informationClassify/${query}`);
  }

  // 新增
  export function add(query) {
    return axios.post("/informationClassify", query);
  }

  // // GET
  // // 方式一
  //   return axios.get('/api/user', {
  //     params: {
  //       page: 1,
  //       limit: 10,
  //     }
  //   })
  // // 方式二、
  // return axios.get('/api/user?page=1&limit=1&xx=')

  // // POST 传参数
  // return axios.get('/api/user', {
  //   page: 1,
  //   limit: 10,
  // })

  export * from "./api/api1";
  export * from "./api/api2";
  export * from "./api/api3";
  export * from "./api/api4";
  export * from "./api/api5";
  export * from "./api/api6";
  export * from "./api/api7";
  export * from "./api/api8";
